/**
 * System:      oshys
 * Model:       log
 * Licence:     GNU General Public License v3
 * Author:      sunwl
 * Date:        2010/04/11
 */
package org.oshys.util.logging;

import org.oshys.util.resource.LocalStringsManager;

/**
 * 负责获取配置信息的类。<br>
 * 该类包装了org.oshys.util.resource.LocalStringManager<br>
 * 所以与Logging有关的配置信息都应该使用本类提供的方法读取，包括Logging的设置、输出信息格式等。<br>
 * 这些配置信息都是在本类所在包下的LocalString_{Locale}.properties中的。<br>
 * @author sunwl
 *
 */
public class ConfigProvider {

    /**
     * 消息本地化管理器。
     */
    private static final LocalStringsManager conf = LocalStringsManager.getManager(ConfigProvider.class);

    /**
     * 普通的获取资源的方法。<br>
     * @see org.oshys.util.resource.LocalStringManager.get(String, Object...);
     * @param key
     * @return 
     */
    static String getResource(String key) {
        return conf.get(key);
    }
    /**
     * 获取资源，若获取失败则使用参数中提供的默认值。
     * @param key
     * @param defaultValue 默认值
     * @return
     */
    static String getResource(String key, String defaultValue) {
        String val = defaultValue;
        try {
            val = conf.get(key);
            if (val == null) {
                return defaultValue;
            }
        } catch (Exception ex) {
            System.err.println("Log is not configured properly. Check it carefully, pls.");
        }
        return val;
    }

    /**
     * 获取int类型的资源，若获取失败则使用参数中提供的默认值。
     * @param key
     * @param defaultValue 默认值
     * @return
     */
    static int getIntResource(String key, int defaultValue) {
        int val = defaultValue;
        try {
            val = Integer.valueOf(conf.get(key));
        } catch (Exception ex) {
            System.err.println("Log is not configured properly. Check it carefully, pls.");
        }
        return val;
    }

    /**
     * 获取布尔类型的资源，若获取失败则使用false。
     * @param key
     * @return
     */
    static boolean getBoolResource(String key) {
        boolean val = false;
        try {
            val = Boolean.valueOf(conf.get(key));
        } catch (Exception ex) {
            System.err.println("Log is not configured properly. Check it carefully, pls.");
        }
        return val;
    }
}
